package Sample_Code;
import CtCILibrary.AssortedMethods;
public class Sample_Code {
public static boolean getBit(int num, int i) {
return ((num & (1 << i)) != 0);
}
public static int setBit(int num, int i) {
return num | (1 << i);
}
public static int clearBit(int num, int i) {
int mask = ~(1 << i);
return num & mask;
}
public static int updateBit(int num, int i, boolean bitIs1) {
int value = bitIs1 ? 1 : 0;
int mask = ~(1 << i);
return (num & mask) | (value << i);
}
public static int clearBitsMSBthroughI(int num, int i) {
int mask = (1 << i) - 1;
return num & mask;
}
public static int clearBitsIthrough0(int num, int i) {
int mask = (-1 << (i+1));
return num & mask;
}
public static void main(String[] args) {
int number = 59;
System.out.println("Testing with number: " + number);
// Get Bit
System.out.println("Get Bit");
System.out.println(AssortedMethods.toFullBinaryString(number));
for (int i = 31; i >= 0; i--) {
int res = getBit(number, i) ? 1 : 0;
System.out.print(res);
}
// Update Bit
System.out.println("\n\nUpdate Bit");
int num1 = 1578; // arbitrary number
for (int i = 31; i >= 0; i--) {
num1 = updateBit(num1, i, getBit(number, i));
}
System.out.println(num1);
// Set and Clear Bit
System.out.println("\nSet and Clear Bit");
int num2 = 1578; // arbitrary number
for (int i = 31; i >= 0; i--) {
if (getBit(number, i)) {
num2 = setBit(num2, i);
} else {
num2 = clearBit(num2, i);
}
}
System.out.println(num2);
// Clear Bits MSB through i
number = 13242352;
int clearMSBThrough = 4;
System.out.println("\nClear bits MSB through " + clearMSBThrough);
System.out.println(AssortedMethods.toFullBinaryString(number));
int num3 = clearBitsMSBthroughI(number, clearMSBThrough);
System.out.println(AssortedMethods.toFullBinaryString(num3));
// Clear Bits i through 0
int clearToLSB = 2;
System.out.println("\nClear bits " + clearToLSB + " through 0");
number = -1;
System.out.println(AssortedMethods.toFullBinaryString(number));
int num4 = clearBitsIthrough0(number, clearToLSB);
System.out.println(AssortedMethods.toFullBinaryString(num4));
}
}